// #ifdef H5
export default {
	name: 'Keypress',
	props: {
		disable: {
			type: Boolean,
			default: false,
		},
	},
	mounted() {
		const keyNames = {
			esc: ['Esc', 'Escape'],
			tab: 'Tab',
			enter: 'Enter',
			space: [' ', 'Spacebar'],
			up: ['Up', 'ArrowUp'],
			left: ['Left', 'ArrowLeft'],
			right: ['Right', 'ArrowRight'],
			down: ['Down', 'ArrowDown'],
			delete: ['Backspace', 'Delete', 'Del'],
		}
		const listener = ($event) => {
			if (this.disable) {
				return
			}
			const keyName = Object.keys(keyNames).find((key) => {
				const keyName = $event.key
				const value = keyNames[key]
				return (
					value === keyName ||
					(Array.isArray(value) && value.includes(keyName))
				)
			})
			if (keyName) {
				// 避免和其他按键事件冲突
				setTimeout(() => {
					this.$emit(keyName, {})
				}, 0)
			}
		}
		document.addEventListener('keyup', listener)
		// this.$once('hook:beforeDestroy', () => {
		//   document.removeEventListener('keyup', listener)
		// })
	},
	render: () => {},
}
// #endif
